import axios from 'axios'
import { Toast } from 'vant'

// 创建一个新的axios实例对象
const http = axios.create({
  timeout: 5000
})

// 添加请求拦截器
http.interceptors.request.use(function (config) {
  // 请求之前添加loading
  Toast.loading({
    duration: 0, // 持续展示 toast
    forbidClick: true,
    message: '加载中'
  })
  return config
}, function (error) {
  // 请求错误关闭loading，提示错误信息
  Toast.clear()
  Toast.fail(error.toString())
  return Promise.reject(error)
})

// 添加响应拦截器
http.interceptors.response.use(function (response) {
  // 响应关闭loading
  Toast.clear()
  const data = response.data
  if (data.code !== 200) {
    // 返回值错误，提示失败
    Toast(data.msg)
    return Promise.reject(data.msg)
  }
  return data
}, function (error) {
  // 响应错误关闭loading，提示错误信息
  Toast.clear()
  Toast.fail(error.toString())
  return Promise.reject(error)
})

export default http
